package de.rts.components;

import java.awt.Color;
import java.util.LinkedHashMap;
import java.util.Map;

public interface RailComponent
{
  public static final Color                  WHITE                             = Color.WHITE;
  public static final Color                  RED                               = Color.RED;
  public static final Color                  GREEN                             = Color.GREEN;

  public static final String                 ROOT_TAG                          = "RailwayMap";
  @SuppressWarnings("serial")
  public static final Map<String, String[]>  XML_TAGS                          = new LinkedHashMap<String, String[]>()
                                                                               {
                                                                                 {
                                                                                   put("attributes", new String[]
                                                                                   { "id", "x", "y", "switchSegment",
    "route"                                                                       });
                                                                                   put("root", new String[]
                                                                                   { "RailwayMap" });
                                                                                   put("firstLevel", new String[]
                                                                                   { "Segment", "Signal", "Train" });
                                                                                   put("secondLevel", new String[]
                                                                                   { "Position", "Size", "Sensor",
    "Name", "Velocity", "Deadline"                                                });
                                                                                   put("thirdLevel", new String[]
                                                                                   { "Position", "Type" });
                                                                                 }
                                                                               };

  public static final String                 RAILWAY_SEGMENTS                  = "//RailwayMap/Segment";
  public static final String                 RAILWAY_SIGNALS                   = "//RailwayMap/Signal";
  public static final String                 RAILWAY_TRAINS                    = "//RailwayMap/Train";
  public static final String[]               INITIAL_SWITCHES                  =
                                                                               { "seg 56910", "seg 12131516",
    "seg 15161617"                                                            };
  public static final String[]               SWITCH_UNIT1                      =
                                                                               { "seg 23910", "seg 56910" };
  public static final String[]               SWITCH_UNIT2                      =
                                                                               { "seg 10111415", "seg 10111516",
    "seg 12131516"                                                            };
  public static final String[]               SWITCH_UNIT3                      =
                                                                               { "seg 15161617", "seg 15161718" };
  public static final String[]               ROUTE1_SWITCHES                   =
                                                                               { "seg 23910", "seg 10111415" };
  public static final String[]               ROUTE2_SWITCHES                   =
                                                                               { "seg 56910", "seg 10111516",
    "seg 15161617"                                                            };
  public static final String[]               ROUTE3_SWITCHES                   =
                                                                               { "seg 12131516", "seg 15161718" };
  public static final Map<Integer, String[]> ROUTESWITCHES                     = new LinkedHashMap<Integer, String[]>()
                                                                               {
                                                                                 {
                                                                                   put(1, ROUTE1_SWITCHES);
                                                                                   put(2, ROUTE2_SWITCHES);
                                                                                   put(3, ROUTE3_SWITCHES);
                                                                                 }
                                                                               };
  public static final Map<Integer, int[]>    USED_SWITCHES                     = new LinkedHashMap<Integer, int[]>()
                                                                               {
                                                                                 {
                                                                                   put(1, new int[]
                                                                                   { 1, 2 });
                                                                                   put(2, new int[]
                                                                                   { 1, 2, 3 });
                                                                                   put(3, new int[]
                                                                                   { 2, 3 });
                                                                                 }
                                                                               };

  public static final Map<Integer, String[]> SINGLE_TRACKS                     = new LinkedHashMap<Integer, String[]>()
                                                                               {
                                                                                 {
                                                                                   put(1, new String[]
                                                                                   { "seg 10111415" });
                                                                                   put(2, new String[]
                                                                                   { "seg 10111516", "seg 15161617" });
                                                                                   put(3, new String[]
                                                                                   { "seg 15161718" });
                                                                                 }
                                                                               };

  public static final int                    ROUTE1_DISTANCE                   = 681;
  public static final int                    ROUTE2_DISTANCE                   = 837;
  public static final int                    ROUTE3_DISTANCE                   = 837;
  public static final int                    DEPARTURE_TO_S23_S56_DISTANCE     = 176;
  public static final int                    S23_S56_ST_END_DISTANCE           = 529;
  public static final int                    DEPARTURE_TO_S1213_S1011_DISTANCE = 428;
  public static final int                    S1213_S1011_ST_END_DISTANCE       = 681;
}
